初心者向け『チュートリアル: スケジュールされたイベントでの AWS Lambda の使用』をやってみた
概要
大阪オフィスのちゃだいんです。
手を動かして学ぶために、公式ドキュメントのチュートリアルをやってみました。
Lambdaファンクション(関数)の更新をしたくてやってみました。
チュートリアル: スケジュールされたイベントでの AWS Lambda の使用 - AWS Lambda
- [lambda-canary] 設計図を使用して Lambda 関数を作成します。毎分ごとに実行されるように Lambda 関数を設定します。関数がエラーを帰す場合、AWS Lambda が CloudWatch にエラーメトリクスを記録することに注意してください。
Lambda 関数の Errors メトリクスに CloudWatch アラームを設定して、AWS Lambda が CloudWatch にエラーメトリクスを送信すると、Amazon SNS トピックにメッセージを投稿するようにします。Amazon SNS トピックに、電子メール通知を受け取るようにサブスクライブします。
前提条件
AWS CLIが使用できる環境で行ってます。
早速やってみた
1.Lambda関数を作成する
- 今回のチュートリアルでは、設計図(Blueprint)の[lambda-canary]を使用します。
-
Create FunctionからBlueprintを選び、Lambda-canaryを探して選択します。
- 設定画面では、ドキュメントから引用している以下項目を埋めていきます。 (一部項目名などが変更しているので注意ください)
- Name (名前) – lambda-canary。
- [ロール] – [Create a new role from one or more templates (1 つ以上のテンプレートから新しいロールを作成)]。
- ロール名 – lambda-apigateway-role。
- [ポリシーテンプレート] – [シンプルなマイクロハーネスのアクセス権限]。
- [ルール] – [Create a new rule (新しいルールの作成)]。
- [Rule name (ルール名)] – CheckWebsiteScheduledEvent。
- [Rule description (ルールの説明)] – CheckWebsiteScheduledEvent trigger。
- [スケジュール式] – rate(1 minute)。
- [有効] – True (オン)。 環境変数
- [site (サイト)] – https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
- [expected (予定)] – What Is AWS Lambda?
- Create functionで作成完了です。
2.Lambda関数をテストする
- Lambdaコンソールを開いて、[Lambda-canary]を開きます。
-
テストイベントの設定
を行い、新しいイベントを作成します。 -
[Test]を実行すると、以下のようにテストが成功したことが表示されます。
- 詳細を見てみると
Check passed!
の文言を発見しました。
- 試しに、ファンクションの設定時の環境変数部分で[expected(予定)]にて、
What Is AWS Lambda?
という文言がありましたが、これをWhat Is AWS Lambda??
と?を1つ増やしてみました。 -
それでもう一度テストを行うと、今度は
Check failed!
となりました。
3.(脱線)Lambda関数のバージョンを発行し、関数を更新する
- チュートリアルとしては以上にして、ここからは脱線して別のことを試してみます。
-
関数を更新するために、バックアップとしてバージョンを発行します。
-
[Lambda-canary]ページ上部の[Actions]から[Publish new version]を選びます。
-
するとVersionのDescriptionを聞かれたので
TestVersion1
と入力し発行しました。
- 以下はVersion発行前のLambdaコンソール画面です。
- 以下はVersion発行後の発行した新しいVersionを選んだ際の画面です。
※いきなりVersion4
になってて驚きますが、これは私がすでに練習で1〜3
を試していたので、今回発行分が4
となっています。
- ご覧の通り、発行されたVersionには先ほどアタッチされていた
CloudWatch Events
が無くなっています。 -
LambdaのVersionは発行後変更不可で、いわば関数のスクリーンショットのようなものなので、トリガーは発行されたVersionにではなく、オリジナルの方にアタッチされています。
AWS Lambda 関数のバージョニングとエイリアス - AWS Lambda
- この状態でオリジナルの方を変更したとしても、すぐ更新前に戻りたいとなれば発行したVersionに戻ることができます。
-
具体的には、CloudWatch EventsのTargetがデフォルトでは最新の$Latest(オリジナルの方)に向くようになっていますが、これを
Version4
を選んであげればOKです。
感想
今回は、Lambda関数のVersion機能を使用して、関数のバックアップが取れることがわかりました。今回はVersion発行に関連した機能である、Aliasを使用しませんでしたが、またの機会で使用してみたいと思います。
どなたかの参考になれば幸いです。それではまた、大阪オフィスのちゃだいんでした。